<?php

    // 在 PHP 中，有三种类型的数组：

    // - 数值数组 - 带有数字 ID 键的数组;
    // - 关联数组 - 带有指定的键的数组，每个键关联一个值;
    // - 多维数组 - 包含一个或多个数组的数组;

    // 多维数组 =>  数值数组 关联数组 组合形成
    

    // 数值数组 嵌套 数值数组
    // $list = array(1,2,3,array(4,5,6));
    $list = [1,2,3,[4,5,6]];


    // 数值数组 嵌套 关联数组  (类似JS中的 数组对象)
    $grade = [
        ["name"=>"张三","chinese"=>55,"math"=>66,"english"=>77], 
        ["name"=>"李四","chinese"=>88,"math"=>99,"english"=>20], 
        ["name"=>"王五","chinese"=>96,"math"=>37,"english"=>80], 
    ]; 

    // 关联数组 嵌套 关联数组/ 数值数组
    $zhang = [
        "name"=>"张三",
        "age"=>18,
        "hobby" => ["sing","dance","basketball"],
        "info" => ["height"=>"180cm","weight"=>"100kg"],
    ];


    // 直接将打印的内容 输出到前端 => 前端无法解析 => 如何将数据转化为前端可以解析的结构(比较流行的 json)
    // print_r($list);
    // print_r($grade);
    // print_r($zhang); 

    // php中  数组,对象 和 json字符串的相互转化
    // json_encode()   数组(数值数组,关联数组,多维数组),对象转化为JSON字符串
    // 注意:
    // 1. 数值数组 转化为json字符串 => JS数组结构 , 关联数组/对象 转化为json字符串 => JS对象结构
    // 2. 中文在解析的过程中会被编码 => 前端接收到数据之后通过JSON.parse() 解析为中文
    // 3. 一般情况下,一个接口只能输出一条纯json数据 => 前端解析会出问题
    //    如果要同时输出多条数据 => 先将多条数据合并为一条,再输出

    // json_decode()   将json字符串 解析为 php中的数组和对象

    // echo json_encode($list);
    // echo json_encode($zhang);
    // echo json_encode($grade);


    $obj = array();
    $obj["list"] = $list;
    $obj["zhang"] = $zhang;
    $obj["grade"] = $grade;

    echo json_encode($obj);




    

    
    
    

   



?>